package com.talent.mapper;

import com.talent.entities.dto.Vacc;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.LinkedList;

/**
 * @author 周意朗
 * Date: 2022/3/22
 * @since JDK 11
 */
@Repository
@Mapper
public interface VaccListMapper {
    /**
     * 得到疫苗表
     *
     * @param index 索引
     * @param add   index + 10
     * @return 查询到的疫苗表
     */
    LinkedList<Vacc> getVaccList(@Param("index") int index,
                                 @Param("add") int add);

    /**
     * 筛查
     *
     * @param age    年龄
     * @param type   类型
     * @param gender 性别
     * @param index  索引
     * @param add    页数
     * @return 结果
     */
    LinkedList<Vacc> getVaccListByCondition(@Param("age") int age,
                                            @Param("type") int type,
                                            @Param("gender") int gender,
                                            @Param("index") int index,
                                            @Param("add") int add);


    /**
     * 按照输入来模糊查询疫苗种类并且返回
     *
     * @param index 索引
     * @param input 输入
     * @return 查询的列表
     */
    LinkedList<Vacc> getVaccListBySearch(@Param("input")String input,
                                         @Param("index") int index,
                                         @Param("add") int add);

    /**
     * 管理员按照用户名字或者身份证查找用户的订单信息
     *
     * @param input 输入
     * @param index 索引
     * @param add   后索引
     * @return 查找到的所有信息
     */
    LinkedList<Vacc> getVaccListByserachAdmin(@Param("input")String input,
                                              @Param("index") int index,
                                              @Param("add") int add);

    /**
     * 添加疫苗
     *
     * @param addedVacc 疫苗
     * @return 是否成功
     */
    Boolean addVaccByAdmin(@Param("addedVacc")Vacc addedVacc);

    /**
     * 修改疫苗
     *
     * @param vacc 疫苗
     * @return 是否成功
     */
    Boolean updateVacc(@Param("uptvacc")Vacc uptvacc);

    /**
     * 根据id查询
     *
     * @param id id
     * @return 结果
     */
    Vacc searchById(@Param("id")String id);
}
